Skip to content

StackBlitz Support for the Quickstart Samples - #47

Merged
brionmario merged 1 commit into
thunder-id:mainfrom
brionmario:flexible-vendor-config
Aug 3, 2026
Merged

StackBlitz Support for the Quickstart Samples#47
brionmario merged 1 commit into
thunder-id:mainfrom
brionmario:flexible-vendor-config

Conversation

@brionmario

@brionmario brionmario commented Aug 3, 2026

Copy link
Copy Markdown
Member

Purpose

The seven quickstart samples under samples/ (react, vue, browser, express, node, nextjs, nuxt) couldn't be opened via a StackBlitz GitHub-fork link. Each sample declares its ThunderID SDK dependency as workspace:* for local pnpm-workspace
development, but StackBlitz forks only the singleh no visibility into the rest of the monorepo, soworkspace:* can never resolve and the install fails immediately.

This PR adds StackBlitz support to all seven quickstarts and adds an "Open in StackBlitz" badge to each sample's README.

Approach

  • Added a .stackblitzrc to each samples/<sdk>/quickstart/ with installDependencies: false and a startCommand that:
    1. Runs an inline node -e one-liner that rewrites any workspace:* entries in dependencies/devDependencies to latest, so the sample resolves against the real published packages instead of the (unavailable) sibling workspace packages.
    2. Runs npm install && npm run dev.
  • Used npm instead of pnpm for the StackBlitzult supported by StackBlitz's Node WebContainerwithout extra corepack setup, and matches how the previous stray lockfile issue below was resolved.
  • Inlined the rewrite logic directly in .stackblitzrc rather than shipping a separate script file per sample ‚Äî since each StackBlitz fork only pulls in the single quickstart subfolder (not the rest of the repo), any fixup logic has to be
    self-contained in that folder anyway, and inlininkeep in sync across all seven samples.
  • Removed samples/react/quickstart/pnpm-lock.yaml, which had been mistakenly committed for that one sample (the other six correctly rely on the root workspace lockfile only, since this is a pnpm workspace).
  • The real package.json files, pnpm-workspace.yaml, and the pnpm catalog: setup are untouched ‚Äî workspace:* still
    resolves correctly for local monorepo development transiently inside the StackBlitz container.
  • Confirmed the current npm-published versions of @thunderid/react/@thunderid/react-router match what's in the workspace, so resolving to latest is safe today.

Related Issues

Related PRs

  • N/A

Checklist

  • Followed the contribution guidelines.
  • Manual test round performed and verified.
  • Documentation provided. (Add links if there are any)
  • Tests provided. (Add links if there are any
    • Unit Tests
    • Integration Tests
  • Breaking changes. (Fill if applicable)
    • Breaking changes section filled.
    • breaking change label added.

Security checks

  • Followed secure coding standards in [WSO2 Sttps://security.docs.wso2.com/en/latest/security-guidelines/secure-engineering-guidelines/secure-con/)
  • Confirmed that this PR doesn't commit any kernames, or other secrets.

Summary by CodeRabbit

  • New Features

    • Added “Open in StackBlitz” links to browser, Express, Next.js, Node.js, Nuxt, React, and Vue quickstart samples.
    • Quickstart samples can now launch more reliably in StackBlitz.
  • Bug Fixes

    • Corrected broken documentation links in browser, Next.js, Nuxt, React, and Vue samples.
  • Chores

    • Removed deprecated starter templates and their associated setup, configuration, and authentication examples.
    • Removed outdated template environment variable examples and refreshed formatting coverage.

feat: add .stackblitzrc for Vue quickstart sample

docs: add StackBlitz badge to Vue quickstart README

fix: update hrefs in Vue HomePage component for flows and design guides

chore: remove unused .env.example and README from Next.js template

chore: remove unused files from Next.js template

chore: remove unused files from Nuxt template

chore: remove unused files from React Vite template

chore: remove unused files from Vue Vite template
@coderabbitai

coderabbitai Bot commented Aug 3, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: fed42f79-569b-4a9d-a35a-ccd9cf785bc7

📥 Commits

Reviewing files that changed from the base of the PR and between 9efa229 and f251ffe.

⛔ Files ignored due to path filters (1)
  • samples/react/quickstart/pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (52)
  • .prettierignore
  • samples/browser/quickstart/.stackblitzrc
  • samples/browser/quickstart/README.md
  • samples/browser/quickstart/src/pages/home.js
  • samples/express/quickstart/.stackblitzrc
  • samples/express/quickstart/README.md
  • samples/nextjs/quickstart/.stackblitzrc
  • samples/nextjs/quickstart/README.md
  • samples/nextjs/quickstart/app/page.tsx
  • samples/node/quickstart/.stackblitzrc
  • samples/node/quickstart/README.md
  • samples/nuxt/quickstart/.stackblitzrc
  • samples/nuxt/quickstart/README.md
  • samples/nuxt/quickstart/app/pages/index.vue
  • samples/react/quickstart/.stackblitzrc
  • samples/react/quickstart/README.md
  • samples/react/quickstart/src/pages/HomePage.jsx
  • samples/vue/quickstart/.stackblitzrc
  • samples/vue/quickstart/README.md
  • samples/vue/quickstart/src/pages/HomePage.vue
  • templates/nextjs/nextjs-template/.env.example
  • templates/nextjs/nextjs-template/README.md
  • templates/nextjs/nextjs-template/app/globals.css
  • templates/nextjs/nextjs-template/app/layout.tsx
  • templates/nextjs/nextjs-template/app/page.tsx
  • templates/nextjs/nextjs-template/next.config.ts
  • templates/nextjs/nextjs-template/package.json
  • templates/nextjs/nextjs-template/tsconfig.json
  • templates/nuxt/nuxt-template/.env.example
  • templates/nuxt/nuxt-template/README.md
  • templates/nuxt/nuxt-template/app.vue
  • templates/nuxt/nuxt-template/nuxt.config.ts
  • templates/nuxt/nuxt-template/package.json
  • templates/nuxt/nuxt-template/pages/index.vue
  • templates/react/vite-react-template/.env.example
  • templates/react/vite-react-template/README.md
  • templates/react/vite-react-template/index.html
  • templates/react/vite-react-template/package.json
  • templates/react/vite-react-template/src/App.jsx
  • templates/react/vite-react-template/src/Dashboard.jsx
  • templates/react/vite-react-template/src/Home.jsx
  • templates/react/vite-react-template/src/index.css
  • templates/react/vite-react-template/src/main.jsx
  • templates/react/vite-react-template/vite.config.js
  • templates/vue/vite-vue-template/.env.example
  • templates/vue/vite-vue-template/README.md
  • templates/vue/vite-vue-template/index.html
  • templates/vue/vite-vue-template/package.json
  • templates/vue/vite-vue-template/src/App.vue
  • templates/vue/vite-vue-template/src/main.js
  • templates/vue/vite-vue-template/src/style.css
  • templates/vue/vite-vue-template/vite.config.js
💤 Files with no reviewable changes (33)
  • templates/nuxt/nuxt-template/.env.example
  • templates/nextjs/nextjs-template/app/globals.css
  • templates/nuxt/nuxt-template/app.vue
  • templates/nextjs/nextjs-template/.env.example
  • templates/react/vite-react-template/.env.example
  • templates/nuxt/nuxt-template/pages/index.vue
  • templates/nextjs/nextjs-template/next.config.ts
  • templates/nextjs/nextjs-template/app/page.tsx
  • templates/nuxt/nuxt-template/README.md
  • templates/vue/vite-vue-template/.env.example
  • templates/react/vite-react-template/vite.config.js
  • templates/vue/vite-vue-template/src/App.vue
  • templates/vue/vite-vue-template/src/style.css
  • templates/react/vite-react-template/README.md
  • templates/react/vite-react-template/src/index.css
  • templates/react/vite-react-template/src/Home.jsx
  • .prettierignore
  • templates/vue/vite-vue-template/index.html
  • templates/nextjs/nextjs-template/tsconfig.json
  • templates/react/vite-react-template/src/App.jsx
  • templates/react/vite-react-template/package.json
  • templates/nextjs/nextjs-template/app/layout.tsx
  • templates/nextjs/nextjs-template/package.json
  • templates/vue/vite-vue-template/package.json
  • templates/nextjs/nextjs-template/README.md
  • templates/vue/vite-vue-template/vite.config.js
  • templates/react/vite-react-template/index.html
  • templates/react/vite-react-template/src/Dashboard.jsx
  • templates/react/vite-react-template/src/main.jsx
  • templates/nuxt/nuxt-template/nuxt.config.ts
  • templates/nuxt/nuxt-template/package.json
  • templates/vue/vite-vue-template/README.md
  • templates/vue/vite-vue-template/src/main.js

📝 Walkthrough

Walkthrough

The PR adds StackBlitz support and launch badges to eight quickstart samples, fixes duplicated documentation URL segments, removes the starter templates, and removes templates from .prettierignore.

Changes

Quickstart StackBlitz support

Layer / File(s) Summary
StackBlitz launch workflow
samples/*/quickstart/.stackblitzrc, samples/*/quickstart/README.md
Adds startup configuration, workspace dependency normalization, package installation, development-server commands, and StackBlitz launch badges.
Quickstart documentation links
samples/browser/quickstart/src/pages/home.js, samples/nextjs/quickstart/app/page.tsx, samples/nuxt/quickstart/app/pages/index.vue, samples/react/quickstart/src/pages/HomePage.jsx, samples/vue/quickstart/src/pages/HomePage.vue
Removes duplicated guides path segments from next-step documentation links.

Template removal and repository cleanup

Layer / File(s) Summary
Starter template removal
templates/nextjs/nextjs-template/*, templates/nuxt/nuxt-template/*, templates/react/vite-react-template/*, templates/vue/vite-vue-template/*
Removes the Next.js, Nuxt, React/Vite, and Vue/Vite starter applications, configuration, documentation, environment examples, and package metadata.
Prettier ignore update
.prettierignore
Removes templates from the ignored paths.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Possibly related issues

Possibly related PRs

Suggested reviewers: donomalvindula

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Out of Scope Changes check ⚠️ Warning The PR deletes multiple framework template applications and configuration files that are unrelated to StackBlitz support for quickstart samples. Remove the unrelated template deletions and environment-file changes, or link an issue that explicitly requires those removals.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the primary change: adding StackBlitz support for the quickstart samples.
Description check ✅ Passed The description covers the purpose, approach, issue, related PRs, checklist, and security checks, despite duplicated and malformed text.
Linked Issues check ✅ Passed The changes add StackBlitz configuration and README launch badges for all seven quickstart samples required by issue #4521.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@brionmario
brionmario merged commit d5d9c9c into thunder-id:main Aug 3, 2026
2 of 3 checks passed
@coderabbitai coderabbitai Bot mentioned this pull request Aug 4, 2026
11 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

StackBlitz Support for the ThunderID JavaScript Quickstart Samples

2 participants